﻿using System;

namespace DimOS.Constants
{
    //Centralized store of hardcoded UI colors
    public static class Colors
    {
        public const ConsoleColor SectionOutputBackground = ConsoleColor.Black;
        public const ConsoleColor SectionInputBackground = ConsoleColor.Black;
        public const ConsoleColor SectionInfoBackground = ConsoleColor.Gray;
        public const ConsoleColor SectionInfoSplitter = ConsoleColor.White;
        public const ConsoleColor SectionScreensBackground = ConsoleColor.DarkGray;
        public const ConsoleColor SectionPathBackground = ConsoleColor.DarkCyan;
        public const ConsoleColor PanelBackground = ConsoleColor.DarkGray;

        public const ConsoleColor SectionOutputForeground = ConsoleColor.White;
        public const ConsoleColor SectionInputForeground = ConsoleColor.Green;
        public const ConsoleColor SectionInfoForeground = ConsoleColor.DarkGray;
        public const ConsoleColor SectionScreensForeground = ConsoleColor.Gray;
        public const ConsoleColor SectionPathForeground = ConsoleColor.DarkRed;
        public const ConsoleColor PanelForeground = ConsoleColor.Gray;

        public const ConsoleColor IndicatorScroll = ConsoleColor.Yellow;
        public const ConsoleColor IndicatorScrollDisabled = ConsoleColor.Yellow;
        public const ConsoleColor IndicatorInputFit = ConsoleColor.Yellow;
        public const ConsoleColor IndicatorScreen = ConsoleColor.Gray;
        public const ConsoleColor IndicatorActiveScreen = ConsoleColor.White;
        public const ConsoleColor IndicatorInteger = ConsoleColor.Cyan;
        public const ConsoleColor IndicatorScrollBuffer = ConsoleColor.White;
        public const ConsoleColor IndicatorScrollBufferDisabled = ConsoleColor.Gray;
        public const ConsoleColor IndicatorBuffer = ConsoleColor.Cyan;
        public const ConsoleColor IndicatorActiveBuffer = ConsoleColor.Yellow;

        public const ConsoleColor IndicatorInputDefault = ConsoleColor.DarkGray;
        public const ConsoleColor IndicatorInputInvalid = ConsoleColor.Red;
        public const ConsoleColor IndicatorInputWarning = ConsoleColor.Yellow;
        public const ConsoleColor IndicatorInputValid = ConsoleColor.Green;
        
        public const ConsoleColor InitLogo = ConsoleColor.White;
        public const ConsoleColor InitHardware = ConsoleColor.Gray;
        public const ConsoleColor InitFileSystem = ConsoleColor.Gray;
        public const ConsoleColor InitCommandShell = ConsoleColor.Gray;
        public const ConsoleColor InitGreeting = ConsoleColor.White;
        public const ConsoleColor InitInfoKey = ConsoleColor.Gray;
        public const ConsoleColor InitInfoValue = ConsoleColor.White;
        public const ConsoleColor InitIndicatorStatusEnclosure = ConsoleColor.White;
        public const ConsoleColor InitIndicatorStatusLoading = ConsoleColor.White;
        public const ConsoleColor InitIndicatorStatusLoaded = ConsoleColor.Green;
        public const ConsoleColor InitIndicatorStatusFailed = ConsoleColor.Red;
        public const ConsoleColor InitIndicatorBarEnclosure = ConsoleColor.White;
        public const ConsoleColor InitIndicatorBarLoading = ConsoleColor.Yellow;
        public const ConsoleColor InitIndicatorMessage = ConsoleColor.White;
        public const ConsoleColor InitSeparatorSection = ConsoleColor.White;
        public const ConsoleColor InitSeparatorFinished = ConsoleColor.Blue;

        public const ConsoleColor CaptionCurrentTopicKey = ConsoleColor.DarkRed;
        public const ConsoleColor CaptionCurrentTopicValue = ConsoleColor.DarkGray;
        public const ConsoleColor CaptionStudyToolsKey = ConsoleColor.DarkMagenta;
        public const ConsoleColor CaptionStudyToolsValue = ConsoleColor.DarkMagenta;
        public const ConsoleColor CaptionTutorName = ConsoleColor.Green;
        public const ConsoleColor CaptionTutorEnclosure = ConsoleColor.DarkGreen;
        public const ConsoleColor CaptionCommandsKey = ConsoleColor.Yellow;
        public const ConsoleColor CaptionCommandsValue = ConsoleColor.DarkYellow;
        public const ConsoleColor CaptionDateKey = ConsoleColor.DarkBlue;
        public const ConsoleColor CaptionDateValue = ConsoleColor.Blue;
        public const ConsoleColor CaptionTimeKey = ConsoleColor.DarkBlue;
        public const ConsoleColor CaptionTimeValue = ConsoleColor.DarkBlue;

        public const ConsoleColor SeparatorSection = ConsoleColor.Blue;
        public const ConsoleColor SeparatorPath = ConsoleColor.Yellow;
        public const ConsoleColor SeparatorPathFit = ConsoleColor.Yellow;
        public const ConsoleColor SeparatorScreen = ConsoleColor.Gray;
        public const ConsoleColor SeparatorBuffer = ConsoleColor.Gray;

        public const ConsoleColor PromptEnclosure = ConsoleColor.Gray;
        public const ConsoleColor PromptSystem = ConsoleColor.Magenta;
        public const ConsoleColor PromptUser = ConsoleColor.White;
        public const ConsoleColor PromptIndicatorRoot = ConsoleColor.Red;
        public const ConsoleColor PromptIndicatorUser = ConsoleColor.Yellow;
        public const ConsoleColor PromptIndicatorTemp = ConsoleColor.Cyan;
        public const ConsoleColor Prompt = ConsoleColor.Magenta;
        public const ConsoleColor Specifier = ConsoleColor.White;
        public const ConsoleColor Warning = ConsoleColor.Red;

        public const ConsoleColor OperationsConditional = ConsoleColor.Magenta;
        public const ConsoleColor OperationsMath = ConsoleColor.White;
        public const ConsoleColor OperationsLogical = ConsoleColor.DarkYellow;

        public const ConsoleColor Digit = ConsoleColor.Gray;

        public const ConsoleColor SpecifierCommand = ConsoleColor.White;
        public const ConsoleColor SpecifierString = ConsoleColor.DarkCyan;
        public const ConsoleColor SpecifierMirror = ConsoleColor.DarkMagenta;
        public const ConsoleColor SpecifierValue = ConsoleColor.White;

        public const ConsoleColor EnclosureValue = ConsoleColor.DarkGreen;
        public const ConsoleColor EnclosureFunction = ConsoleColor.Blue;
        public const ConsoleColor EnclosureCommand = ConsoleColor.Cyan;

        public const ConsoleColor OutputEnclosure = ConsoleColor.Gray;
        public const ConsoleColor OutputCommand = ConsoleColor.DarkGreen;
        public const ConsoleColor OutputArgs = ConsoleColor.DarkYellow;
        public const ConsoleColor OutputIndicatorRoot = ConsoleColor.Red;
        public const ConsoleColor OutputIndicatorUser = ConsoleColor.Yellow;

        public const ConsoleColor HelpExplanation = ConsoleColor.Gray;
        public const ConsoleColor HelpExtensionsKey = ConsoleColor.DarkGreen;
        public const ConsoleColor HelpExtensionsValue = ConsoleColor.White;
        public const ConsoleColor HelpExtensionsSeparator = ConsoleColor.DarkGreen;
        public const ConsoleColor HelpUsageKey = ConsoleColor.DarkGreen;
        public const ConsoleColor HelpUsageValue = ConsoleColor.DarkGreen;

        public const ConsoleColor NodeFolder = ConsoleColor.Blue;
        public const ConsoleColor NodeFile = ConsoleColor.Gray;
        public const ConsoleColor NodeSystemFolder = ConsoleColor.DarkYellow;
        public const ConsoleColor NodeSystemFile = ConsoleColor.DarkGreen;
        public const ConsoleColor NodeIndicator = ConsoleColor.White;
    }
}
